package com.shun.base.action;


import com.shun.base.dto.SysLoginLogAddDto;
import com.shun.base.dto.SysLoginLogDto;
import com.shun.base.dto.SysOperLogDto;
import com.shun.base.service.ISysLoginLogService;
import com.shun.base.service.ISysOperLogService;
import com.shun.common.R;
import com.shun.common.page.ShunPage;
import io.swagger.annotations.ApiModelProperty;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * <p>
 * 系统访问记录 前端控制器
 * </p>
 *
 * @author clever
 * @since 2021-10-10
 */
@Slf4j
@RestController
@RequestMapping("/base/sysLog/v1/")
public class SysLogAction {

    @Autowired
    private ISysLoginLogService loginLogService;

    @Autowired
    private ISysOperLogService operLogService;

    @PostMapping("/pageLogin")
    @ApiModelProperty("操作日志分页")
    public R pageSysLoginLog(@RequestBody SysLoginLogDto dto){
        log.debug("登录分页,参数：{}",dto);
        return loginLogService.pageSysLoginLog(dto);
    }

    @PostMapping("/addLogin")
    @ApiModelProperty("新增登录日志分页")
    public R addSysLoginLog(@RequestBody SysLoginLogAddDto sysLoginLogDto){
        log.debug("新增登录,参数：{}",sysLoginLogDto);
        return loginLogService.addSysLoginLog(sysLoginLogDto);
    }

    @GetMapping("/delLogin/{logId}")
    @ApiModelProperty("删除登录日志分页")
    public R delSysLoginLog(@PathVariable("logId") String logId){
        log.debug("删除登录,参数：{}",logId);
        return loginLogService.delSysLoginLog(logId);
    }

    @GetMapping("/delLogins")
    @ApiModelProperty("批量删除登录日志")
    public R delSysLoginLogs(String logIds){
        log.debug("批量删除,参数：{}",logIds);
        return loginLogService.delSysLoginLogs(logIds.split(","));
    }

    @PostMapping("/pageOper")
    @ApiModelProperty("操作日志分页")
    public R pageSysOperLog(@RequestBody ShunPage page){
        log.debug("登录分页,参数：{}",page);
        return operLogService.pageSysOperLog(page);
    }

    @PostMapping("/addOper")
    @ApiModelProperty("新增操作日志分页")
    public R addSysLoginLog(@RequestBody SysOperLogDto sysOperLogDto){
        log.debug("新增操作,参数：{}",sysOperLogDto);
        return operLogService.addSysOperLog(sysOperLogDto);
    }

    @GetMapping("/delOper/{logId}")
    @ApiModelProperty("删除操作日志")
    public R delSysOperLog(@PathVariable("logId") String logId){
        log.debug("删除登录,参数：{}",logId);
        return operLogService.delSysOperLog(logId);
    }

    @GetMapping("/delOpers")
    @ApiModelProperty("批量删除操作日志")
    public R delSysOperLogs(String logIds){
        log.debug("批量删除,参数：{}",logIds);
        return operLogService.delSysOperLogs(logIds.split(","));
    }
}


